package 文件.学习;

import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;

public class 文件的遍历方法汇总 {
    public static void main(String[] args) {
        //1.listRoots-->获取系统中所有的盘符
        File[] arr = File.listRoots();
        System.out.println(Arrays.toString(arr));//[C:\, D:\]

        //2.list()-->获取当前该路径下的所有内容(仅仅是名字,没有路径)
        File f1=new File("D:\\F");
        String[] list = f1.list();
        System.out.println(Arrays.toString(list));//[BBB, bbb.txt, c.txt, CCC]

        //3.list(Filenamefilter filter)
        File f2=new File("D:\\F");
        //accept的方法形参:依次表示要查看的文件夹下每一个文件夹和文件的路径.
        //参数一:父级路径
        //参数二:子级路径
        //返回值:true:表示当前路径保留
        //      false:表示当前路径舍弃不要.
        String[] arr2 = f2.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                //只要.tet的文件
                File src=new File(dir,name);
                //当前的路径是文件,且最后以.txt结尾的文本文件才进行保留
               return src.isFile()&&name.endsWith(".txt");
            }
        });
        System.out.println(Arrays.toString(arr2));//[bbb.txt, c.txt]



    }
}
